10 DEFINT A:KEY OFF:'7/11/82 ELECTRIC
30 'WRITTEN BY  MAURY SHULMAN  265 BOWMAN AVE  MERION PA 19066
50 DIM A(1000)
90 CLS
100 PRINT"ELECTRIC BILL ANALYSIS PROGRAM":PRINT:PRINT:PRINT
200 PRINT:PRINT"ENTER FUNCTION DESIRED.":PRINT
300 PRINT:PRINT:PRINT"1.   NEW BILL ENTRY."
400 PRINT:PRINT:PRINT"2.   YEARLY ANALYSIS."
500 PRINT:PRINT:PRINT"3.   MONTHLY ANALYSIS."
600 PRINT:PRINT:PRINT"4.   SAVE PROGRAM ON DISKETTE."
700 LOCATE 24,1:INPUT Z:IF Z>4 OR Z<1 THEN BEEP:LOCATE 22,1:PRINT"INCORRECT ENTRY.  ENTER 1,2,3 OR 4.":FOR A=1 TO 3000:NEXT:BEEP:GOTO 90
800 ON Z GOSUB 2000,10000,15000,20000
900 GOTO 90
1070 INPUT "ENTER YEAR OR 0 TO END";Y
2000 CLS:PRINT"ENTER DATA IN FORM OF MMYY,KWH,$,NO OF MONTHS IN THE BILLING PERIOD":PRINT:PRINT"MMYY IS THE DATE OF THE END OF THE BILLING PERIOD":PRINT"KWH  IS THE NUMBER OF KILOWATT-HOURS BILLED":PRINT"$    IS THE TOTAT CHARGE IN CENTS (WITHOUT DECIMAL
2100 PRINT"N    IS THE MONTHS IN THE BILLING PERIOD (USUALLY ONE)":PRINT:PRINT:PRINT"BILLING DATA IS STORED WITHIN THE PROGRAM IN THE FORM OF DATA STATEMENTS.":PRINT"MAKE SURE THAT YOU SAVE THIS PROGRAM AFTER EACH TIME THAT YOU ENTER DATA."
2200 PRINT"THIS CAN BE DONE BY USING THE END FUNCTION OF THIS PROGRAM."
2300 PRINT:PRINT"THIS PROGRAM IS SET UP FOR THE YEARS 1973 TO 1984. OTHER YEARS CAN BE ANAYZED BY CHANGING THE FOLLOWING LINE NUMBERS:":PRINT"  10100 10200 10700"
2500 PRINT:INPUT "PRESS ENTER FOR LISTING OF DATA STATEMENTS";R$:LIST 30000-
4000 P=1
4002 IF S THEN RETURN
4003 S=-1
4005 RESTORE
4010 FOR Z=1 TO 100:LOCATE 24,1:PRINT"C A L C U L A T I N G";
4020 FOR W=1 TO 4
4030 READ A(P)
4040 P=P+1
4050 NEXT
4060 IF A(P-1)<=1 THEN GOTO 4200
4070 F=P-1
4080 FOR V=1 TO A(F)-1
4090 A(P)=A(F-3)+V*100
4100 IF A(P)>=1300 THEN A(P)=A(P)-1199
4110 A(P+1)=A(F-2)/A(F)
4120 A(P+2)=A(F-1)/A(F)
4130 A(P+3)=A(F)
4140 P=P+4
4150 NEXT
4160 A(F-2)=A(F-2)/A(F)
4170 A(F-1)=A(F-1)/A(F)
4200 LOCATE 24,1:PRINT"                     ";: NEXT
4300 RETURN
10000 GOSUB 4000
10100 LOCATE 24,1:INPUT "WHAT YEAR DO YOU WANT ANALYZED YYYY";Y:CLS:IF Y>1984 OR Y<1973 THEN BEEP:PRINT"INCORRECT ENTRY. ENTER A YEAR BETWEEN 1973 AND 1984.":FOR AX=1 TO 3000:NEXT:BEEP:GOTO 10100
10200 N=Y-1973:K=0:D=0:U=0:X=0:KW=0:DD=0:RD=0
10220 PRINT"ELECTRIC BILL ANALYSIS":PRINT:PRINT"DATE KW-HRS $/MONTH CENTS/KW-HR     KW %    $ %   RATE % ": PRINT
10300 FOR Q=1 TO 12
10400 M=48*N+4*(Q-1)
10430 IF A(M+2)<>0 THEN X=X+1:C=A(M+3)/A(M+2)ELSE C=0
10500 PRINT USING "####";A(M+1);:PRINT USING "######.##";A(M+2);A(M+3)/100;C;:IF KW>0 AND A(M+2)>0 THEN PRINT USING "########";(A(M+2)-KW)*100/KW;(A(M+3)-DD)*100/DD;(C-RD)*100/RD ELSE PRINT
10550 K=K+A(M+2):D=D+A(M+3)/100:U=U+C:KW=A(M+2):DD=A(M+3):RD=C
10600 NEXT
10650 PRINT:PRINT:PRINT"TOTAL";:PRINT USING "#####.##";K;:PRINT USING "######.##";D:PRINT:PRINT"AVG ";:PRINT USING "######.##";K/X;D/X;U/X
10700 LOCATE 24,1:INPUT "ENTER YEAR YYYY OR 0 TO END";Y:CLS:IF (Y>1984 OR Y<1973) AND Y<>0 THEN BEEP:PRINT"INCORRECT ENTRY. ENTER A YEAR BETWEEN 1973 AND 1984 OR 0 TO END.":FOR AX=1 TO 3000:NEXT:BEEP:GOTO 10700
10800 IF Y<>0 THEN GOTO 10200
10900 RETURN
15000 GOSUB 4000
15100 INPUT "WHAT MONTH DO YOU WANT ANALYZED? ENTER NUMBER...";N:IF N>12 OR N<1 THEN BEEP:PRINT:PRINT"INCORRECT INPUT. ENTER A NUMBER FROM 1 TO 12.":FOR AS=1 TO 3000:NEXT:BEEP:GOTO 15100
15125 CLS:KW=0:DD=0:RD=0
15130 PRINT"ELECTRIC BILL ANALYSIS":PRINT:PRINT"DATE KW-HRS $/MONTH CENTS/KW-HR     KW %    $ %   RATE % ": PRINT
15150 FOR Q=1 TO 12
15200 M=4*(N-1)+1+48*(Q-1)
15250 IF A(M+1)<>0 THEN C=A(M+2)/A(M+1)ELSE C=0
15300 PRINT USING "####";A(M);:PRINT USING "######.##";A(M+1);A(M+2)/100;C;:IF KW>0 AND A(M+1)>0 THEN PRINT USING "########";(A(M+1)-KW)*100/KW;(A(M+2)-DD)*100/DD;(C-RD)*100/RD ELSE PRINT
15400 KW=A(M+1):DD=A(M+2):RD=C:NEXT
15500 LOCATE 24,1:INPUT " NUMBER OF MONTH OR 0 TO STOP";N:IF N>12 OR N<0 THEN BEEP:PRINT"INCORRECT ENTRY. ENTER A NUMBER FROM 0 TO 12.":FOR AX=1 TO 3000:NEXT:BEEP:GOTO 15500
15600 IF N<>0 THEN GOTO 15125
15700 RETURN
20000 D$="B:ELECTRIC":DB$="B:ELECTRIC.SAV":CLS:PRINT"THIS FUNCTION WILL SAVE THIS PROGRAM ON DISKETTE":PRINT:PRINT"DEFAULT PRIMARY FILE NAME IS ";D$:PRINT"BACKUP FILE NAME IS ";DB$:INPUT "ENTER FILE NAME OR <ENTER> FOR DEFAULT";R$:IF R$=""THEN R$=D$
20100 INPUT "ENTER BACKUP FILE NAME OR <ENTER> FOR DEFAULT";RR$:IF RR$=""THEN RR$=DB$:PRINT:PRINT"FILE NAME IS        ";R$:PRINT"BACKUP FILE NAME IS ";RR$:PRINT:INPUT "IS THIS CORRECT REPLY Y OR N";RC$:IF RC$<>"Y" OR RC$<>"Y" THEN GOTO 20000
20200 SAVE R$:SAVE RR$:PRINT"PROGRAM SAVED.":GOTO 100
30000 DATA 173,1535,5369,3,473,1573,5647,3,773,3538,12472,3
30010 DATA 1073,1635,6020,3,174,1545,6410,3,474,1559,7806,3
30020 DATA 774,2876,13476,3,1074,1480,7418,3,175,1459,7948,3
30030 DATA 475,2209,11356,3,775,2668,14158,2,975,1112,5677,2
30040 DATA 1175,1404,7113,2,176,1278,6601,2,376,1433,7277,2
30050 DATA 576,1879,9621,2,776,2078,11348,2,976,1252,6565,2
30060 DATA 1176,1384,7295,2,177,1326,7376,2,377,1068,6105,2
30070 DATA 577,1457,8243,2,777,2693,16106,2,977,804,4644,1
30080 DATA 1077,599,3147,1,1177,802,4194,1,1277,844,4521,1
30090 DATA 178,739,4134,1,278,720,4125,1,378,746,4237,1
30100 DATA 478,545,3084,1,578,594,3278,1,678,951,5618,1
30110 DATA 778,1208,7212,1,878,1453,8617,1,978,754,4311,1
30120 DATA 1078,706,3778,1,1178,717,3874,1,1278,875,4669,1
30130 DATA 179,799,4279,1,279,820,4402,1,379,630,3658,1
30140 DATA 479,656,3789,1,579,753,4335,1,679,645,4220,1
30150 DATA 779,1139,7504,1,879,952,6547,1,979,844,6015,1
30160 DATA 1079,579,4320,1,1179,679,5220,1,1279,620,4933,1
30170 DATA 180,651,5149,1,280,774,5638,1,380,632,4651,1
30180 DATA 480,545,4046,1,580,626,4717,1,680,646,4993,1
30190 DATA 780,1351,11223,1,880,1001,8176,1,980,761,6083,1
30220 DATA 1080,624,4764,1,1180,727,5552,1,1280,660,5113,1
30230 DATA 181,636,4926,1,281,594,4599,1,381,614,4755,1
30240 DATA 481,631,5056,1,581,600,5168,1,681,735,6595,1
30250 DATA 781,1256,11697,1,881,738,6624,1,981,697,6214,1
30260 DATA 1081,659,5665,1,1181,665,5717,1,1281,711,6182,1
30270 DATA 182,646,5614,1,282,641,5571,1,382,670,5825,1
30280 DATA 482,572,4700,1,582,612,5413,1,682,660,6448,1
31000 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,00,0,00,0,0
31100 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,00,0,00,0,0
31200 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,00,0,00,0,0
31300 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,00,0,00,0,0
31400 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,00,0,00,0,0
31500 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,00,0,00,0,0
